The present invention relates to methods and systems that allow distribution of information to potential customers for limited use, while restricting full revelation of the information to customers. Furthermore, the present invention relates to such protection of information even when the information may be distributed separately from a computer application program which uses the information. A particularly appropriate implementation of the present invention is in the area of Electronic Design Automation (EDA) for logic devices.
The industry trend is toward electronic logic devices of increasingly large size and complexity. Simultaneously, market forces have reduced the amount of time practically available for developing such logic devices. In this environment, designers of logic devices, including designers who program Programmable Logical Devices (PLDs), increasingly find it cost-effective to purchase pre-designed building blocks for licensed use in their own designs. These building blocks are logic designs that implement defined logical "functions." Examples of functions offered by design vendors include a Direct Memory Access (DMA) Controller and a Fast Fourier Transform (FFT) Computation Unit.
As the size and complexity of function designs offered by vendors have grown, it has become increasingly difficult for a designer to predict merely from a vendor's datasheets and sales materials whether a given function design will fit as expected into the designer's own overall logic design. This difficulty arises, for example, because design parameters such as circuit placement and routability are affected by interplay between the vendor's function design and the rest of the designer's logic design and therefore cannot be well characterized in advance by the vendor for all potential customers (designers).
In general, a designer will be convinced that a vendor's function design will fit properly into the designer's overall design only after testing the function design using an EDA computer application program such as the MAX+PLUS II program available from Altera Corporation of San Jose, Calif. (the assignees of the present invention). In particular, the designer would want to "compile" the function design into the designer's overall design to verify circuit fitting, timing, and/or other gross statistics. Furthermore, the designer may want to perform detailed functional and/or timing simulation of the compiled overall design to verify correct logical and/or timing performance. Such compilation or simulation are examples of processing that is more than mere reproduction of portions of the function design.
In general, then, a designer is reluctant to purchase a license for a function design unless he or she has first successfully processed the function design using an EDA computer application program. However, vendors generally refuse to provide their function designs to designers for EDA processing unless the designer has already purchased a license. The reason is that once a designer (potential customer) has received a function design for EDA processing, vendors have little practical assurance that the designer will act in good faith. More particularly, vendors fear that a designer might refuse to purchase a license but secretly retain a copy of the function design for unauthorized (i.e., unlicensed) use.
The vendors' fears are especially well-founded if the function design in question is intended for use in programming PLDs, such as those manufactured by Altera Corporation. The reason is that PLDs (unlike, for example, gate arrays, or GAs) are typically programmed in relatively small batches by a relatively large number of customers. It would be difficult and expensive, in general, for a vendor to police and enforce its rights against such customers once the customers already have obtained a copy of the function design.
The vendors' understandable refusal to make their function designs available for trial processing is a serious impediment to efficient adoption of functions provided by vendors into logic devices developed by designers.
What is needed are methods and systems for allowing distribution of information to potential customers for limited use for evaluation, while restricting full revelation of the information to customers. What is particularly needed are methods and systems for allowing distribution of function designs to designers for limited processing using an EDA computer application program for evaluating the function designs while restricting full revelation of the function design to the designers.